import java.util.HashMap;

public class Solution13 {
    /*public int romanToInt(String s) {
        int n = 0;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            char next = '0';
            if (i < s.length() - 1)
                next = s.charAt(i + 1);
            if (c == 'M') {
                n += 1000;
            } else if (c == 'D') {
                n += 500;
            } else if (c == 'C') {
                if (next == 'D' || next == 'M') {
                    n -= 100;
                } else {
                    n += 100;
                }
            } else if (c == 'L') {
                n += 50;
            } else if (c == 'X') {
                if (next == 'L' || next == 'C') {
                    n -= 10;
                } else {
                    n += 10;
                }
            } else if (c == 'V') {
                n += 5;
            } else if (next == 'V' || next == 'X') {
                n -= 1;
            } else {
                n += 1;
            }
        }

        return n;
    }*/
    public int romanToInt(String s) {
        int n = 0;
        HashMap<Character, Integer> map = new HashMap<>(7);
        map.put('I', 1);
        map.put('V', 5);
        map.put('X', 10);
        map.put('L', 50);
        map.put('C', 100);
        map.put('D', 500);
        map.put('M', 1000);

        for (int i = 0; i < s.length(); i++) {
            char cur = s.charAt(i);
            if ((cur == 'I' || cur == 'X' || cur == 'C') && (i < s.length() - 1 && map.get(cur) < map.get(s.charAt(i + 1)))) {
                n -= map.get(cur);
            } else
                n += map.get(cur);
        }
        return n;
    }
}
